/**
 * 数组转树
 */
export function list2Tree (list, pid = '') {
  // 准备存储最终树形结构的数组
  const treeData = []
  // 一级部门： pid是空字符串
  // 二级部门属于哪个一级部门？： 如果部门的 pid 等于 id，说明pid的这个部门属于id部门的子部门，
  // 就要把pid这个部门加到id这个部门 children 中去
  // 遍历 list 数组
  for (let i = 0; i < list.length; i++) {
    if (list[i].pid === pid) {
      // 查找对应子部门
      // 函数递归调用
      // 这里的children就是对应的子部门，比如：list[i]是财务部
      const children = list2Tree(list, list[i].id)
      // 如果找到了子部门
      if (children.length) {
        // 则把找到的子部门数组添加到当前部门的children（树形结构的体现）
        list[i].children = children
      }
      // 添加一级部门
      treeData.push(list[i])
    }
  }
  // 返回树形结构
  return treeData
}
